iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
自我挑戰組

System Software Introduction系列 第 24

The Overview of the System Software Build System​

  • 分享至 

  • xImage
  •  

System software會依照需求訂出一些build configuration,build完之後變成一包軟體包 (software package)。每一種build configuration有不同的build flow、software組合、需要的工具等。當system software越來越複雜時,build configuration數量與複雜度也會變高,所以需要有專用的工具輔助管理build configuration,並依照build configuration來build出需要的executable組合,這就是我們接下來幾天要介紹的工具: build system。

Why the Build System is Needed

  • 需要自行管理software package當中的software組合
    不同的software package需要的software、版本也不相同,沒有build system的話,就需要人工紀錄software組合,software package數量多的時候管理不便且容易出錯。

  • 需要每次手動建立build environment
    不同的software package需要的build environment也不相同 (例如: 環境變數、library、tool……),沒有build system的話,就需要人工紀錄並且執行build environment的建立流程,每次build之前都需要建立build environment,重複頻率高、複雜度也高管理不便且容易出錯。

  • 需要每次手動依照需求下指令build software package
    不同的software package在不同需求的時候需要下不同build command,沒有build system的話,就需要人工紀錄並且執行build software package的建立流程,每次build之前都需要依照需求build software package,相似度高、複雜度也高管理不便且容易出錯。

  • 利於團隊合作
    Build system利用build configuration將build flow參數化、程式化,合作的system software developer不需要重新了解一個build configuration的完整build flow,只需要知道如何修改、新增需要的規則來達到目的即可。

What is the Build System

Build system是一套依照build configuration執行工作的工具,包括幾項功能

  • Build Configuration Template
    每一套Build system通常會提供build configuration template,可以讓user定義build configuration,build system會依照build configuration進行build flow。

  • Package Config
    Build configuration中可以讓user定義需要的system software,build system會依照build configuration取得對應的system software。
    例如: build configuration當中設定好Linux kernel版本與GCC compiler toolchain的版本組合,build system會自動下載對應版本的Linux kernel及GCC的source code,或者使用system software developer已事先準備好source code的路徑準備build。

  • Build Environment
    Build configuration中可以讓user定義需要的build environment,build system會依照build configuration建立需要的build environment(例如: compiler版本、tool版本、環境變數等)。
    例如: 在不同build configurations當中,tool版本設定中,Python版本會有差異,build system負責提供對應的Python版本給build flow使用。

  • Build Automation
    Build system會搭配build automation utilities,以增加自動化並減少人為介入build flow,而部分build system會自動產生build automation script。
    例如: 最常用的build automation utility是GNU make,build system會依找build configuration自動產生GNU make需要的makefile。

我們今天簡單介紹build system與system software依賴於他的原因,接下來我們會介紹build system的特色、如何準備build environment、主流build system簡介等內容。


上一篇
The Verification of System Software - ​ Test Framework​
下一篇
Features of the System Software Build System
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言